diff --git a/dist/IO/poll.h b/dist/IO/poll.h
--- a/dist/IO/poll.h
+++ b/dist/IO/poll.h
@@ -22,10 +22,12 @@
 
 #define EMULATE_POLL_WITH_SELECT
 
+#ifdef __VMS
 #ifdef poll
 # undef poll
 #endif
 #define poll Perl_my_poll
+#endif
 
 typedef struct pollfd {
     int fd;
diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
--- a/ext/Errno/Errno_pm.PL
+++ b/ext/Errno/Errno_pm.PL
@@ -125,6 +125,8 @@ sub get_files {
     # VMS keeps its include files in system libraries
     if ($^O eq 'VMS') {
 	$file{'Sys$Library:DECC$RTLDEF.TLB'} = 1;
+	} elsif ($^O eq 'plan9') {
+	$file{'/sys/include/ape/errno.h'} = 1;
     } elsif ($^O eq 'os390') {
 	# OS/390 C compiler doesn't generate #file or #line directives
 	$file{'/usr/include/errno.h'} = 1;
diff --git a/sv.c b/sv.c
--- a/sv.c
+++ b/sv.c
@@ -876,10 +876,10 @@
     U8 body_size;	/* Size to allocate  */
     U8 copy;		/* Size of structure to copy (may be shorter)  */
     U8 offset;		/* Size of unalloced ghost fields to first alloced field*/
-    PERL_BITFIELD8 type : 4;        /* We have space for a sanity check. */
-    PERL_BITFIELD8 cant_upgrade : 1;/* Cannot upgrade this type */
-    PERL_BITFIELD8 zero_nv : 1;     /* zero the NV when upgrading from this */
-    PERL_BITFIELD8 arena : 1;       /* Allocated from an arena */
+    PERL_BITFIELD8 type;        /* We have space for a sanity check. */
+    PERL_BITFIELD8 cant_upgrade;/* Cannot upgrade this type */
+    PERL_BITFIELD8 zero_nv;     /* zero the NV when upgrading from this */
+    PERL_BITFIELD8 arena;       /* Allocated from an arena */
     U32 arena_size;                 /* Size of arena to allocate */
 };
 
